"""
1. ⼀个回合制游戏，有两个英雄，分别以两个类进⾏定义。分别是Timo和Jinx。每个英雄都有 hp 属性和 power属性，hp 代表⾎量，power 代表攻击⼒

2. 每个英雄都有⼀个 fight ⽅法， fight ⽅法需要传⼊“enemy_hp”（敌⼈的⾎量），“enemy_power”（敌⼈的攻击⼒）两个参数。需要计算对打一轮过后双方的最终血量，
英雄最终的⾎量 = 英雄hp属性-敌⼈的攻击⼒enemy_power
敌⼈最终的⾎量 = 敌⼈的⾎量enemy_hp-英雄的power属性

3. 对⽐英雄最终的⾎量和敌⼈最终的⾎量，⾎量剩余多的⼈获胜。如果英雄赢了打印 “英雄获胜”，如果敌⼈赢了，打印“敌⼈获胜”

4. 使用继承、简单工厂方法等各种方式优化你的代码
"""
class Hero():
    hero_name = ""
    hero_hp = 0
    hero_power = 0
    def fight(self,enemy_hp,enemy_power,ememy_name):
        # 英雄最终的⾎量 = 英雄hp属性-敌⼈的攻击⼒enemy_power
        self.hero_hp=self.hero_hp-enemy_power
        # 敌⼈最终的⾎量 = 敌⼈的⾎量enemy_hp - 英雄的power属性
        enemy_hp=enemy_hp-self.hero_power
        print(f"英雄的血量{self.hero_hp},敌人的血量{enemy_hp}")
        if self.hero_hp>enemy_hp:
            print(f"{self.hero_name}获得胜利")
        elif self.hero_hp==enemy_hp:
            print(f"{self.hero_name}与{ememy_name}不分胜负")
        else:
            print(f"{ememy_name}获得胜利")

class Timo(Hero):
    hero_name = "Timo"
    hero_hp = 10000
    hero_power = 59

class Jinx(Hero):
    hero_name = "Jinx"
    hero_hp = 900
    hero_power = 68

class HeroFactory():
    def creat_hero(self,name):
        if name == "timo":
            return Timo()
        elif name == "jinx":
            return Jinx()
        else:
            raise Exception("无此英雄")

HeroFactory()
timo = HeroFactory().creat_hero("timo")
jinx =HeroFactory().creat_hero("jinx")
timo.fight(jinx.hero_hp,jinx.hero_power,jinx.hero_name)